package pe.edu.upc.dsd.debuggers.pedido.model.service;

import javax.jws.WebService;

import org.apache.log4j.Logger;

import pe.edu.upc.dsd.debuggers.gulda.webservice.Service1Locator;
import pe.edu.upc.dsd.debuggers.gulda.webservice.Service1Soap;
import pe.edu.upc.dsd.debuggers.pedido.model.vo.Cliente;


@WebService(endpointInterface = "pe.edu.upc.dsd.debuggers.pedido.model.service.ClienteService")
public class ClienteServiceImpl implements ClienteService{
	public Logger log = Logger.getLogger(PedidoServiceImpl.class);
	
	public ClienteServiceImpl(){
		
	}
	
	@Override
	public Cliente getObtenerClientePorId(String id) {
		// TODO invocar al servicio
		log.info("en el metodo: getObtenerClientePorId");
		pe.edu.upc.dsd.debuggers.gulda.webservice.Cliente cliente = new pe.edu.upc.dsd.debuggers.gulda.webservice.Cliente();
		 Cliente objCliente = new Cliente();
		 try { 
		    // Call Web Service Operation
		    Service1Locator  service = new Service1Locator();
            Service1Soap port = service.getService1Soap();
            // TODO initialize WS operation arguments here
            pe.edu.upc.dsd.debuggers.gulda.webservice.Cliente[] result = port.obtenerClientesXId(id);
		    if(result!= null && result.length != 0){
			 	log.info("Cantidad de clientes :" + result.length);
		    	System.out.println("Result = "+result[0].getCLI_Codigo());
	            System.out.println("Result = "+result[0].getCLI_Descripcion());
			    cliente = result[0];
		    	objCliente.setCodigo(cliente.getCLI_Codigo()); 
			    objCliente.setNombre(cliente.getCLI_Descripcion()); 
			    objCliente.setDireccion(cliente.getCLI_DireccionCobranza());
			    objCliente.setTelefono(cliente.getCLI_Telefono());
			    objCliente.setVendedor(cliente.getVEN_Codigo());
			    objCliente.setCreditoOtorgado(Double.parseDouble(cliente.getCLI_LineaCredito()));
			    objCliente.setCreditoDisponible(Double.parseDouble(cliente.getCLI_SaldoLCredito()));
			    objCliente.setCreditoUtilizado(Double.parseDouble(cliente.getCLI_LineaCredito()) - Double.parseDouble(cliente.getCLI_SaldoLCredito()));
		    }
		   
        } catch (Exception ex) {
        	log.error(ex.getMessage());
            ex.printStackTrace();
        }
		return objCliente;
	}

	@Override
	public Cliente getObtenerClientePorNombre(String nombre) {
		// TODO Auto-generated method stub
			Cliente c = new Cliente();
			c.setNombre(nombre);
		return c;
	}
	
}
